Задача на постановку:
Задача на разработку:
При успешных и не успешных попытках входа сервис sso должен писать в kafka в топик sso.auth.events сообщения следующего формата:
- Успешная авторизация:
{ "id": "70acb4ca-9d7a-489d-9707-a5e48c52637b", "user_id": "e5deb6e1-e195-4c13-bb90-c8f671e25925", "vk_id": "7d97d67f-8bb3-4459-914b-8c442ca6e8f6", "description": "Пользователь Иванов Иван Иванович авторизовался в системе.", "time_created": "2023-07-05T12:49:57.902756100", "extra_info": { "ключ": "значение" }, "result": "success", "main_vk_id": "5c7a4ba4-1736-4616-a3dc-6d9e33b37bde"} |
- Неудачная авторизация:
{ "id": "70acb4ca-9d7a-489d-9707-a5e48c52637b", "description": "Неудачная авторизация", "time_created": "2023-07-05T12:49:57.902756100", "result": "fail"} |
Описание сообщения:
Название | Формат данных | Описание | Примечание |
|---|---|---|---|
Название | Формат данных | Описание | Примечание |
| id | string | Идентификатор журнала | Присваивается уникальное значение |
| user_id | string | Идентификатор пользователя | Значение берётся из сервиса idm, коллекция account |
| vk_id | string | Идентификатор военного комиссариата | Значение берётся из сервиса idm, где account привязан к организации, т.е. к коллекции domain |
| description | string | Описание события | "Пользователь *ФИО* успешно авторизовался в системе.", либо "Неуспешная авторизация пользователя." |
| time_created | string | Время события | |
| extra_info | object(json) | Дополнительная информация | Поле для возможности расширения передаваемых полей |
| result | string | Результат аутентификации | Возможные значение: 1) "success" - в случае успешной авторизации, 2) "fail" - в случае неуспешной авторизации |
| main_vk_id | string | Идентификатор головного военкомата | Значение берётся из сервиса idm, где организация в коллекции domain, к которой привязан пользователь, привязана другая организация, имеющая schema = "Organization" |
Реализовать сервис журналирования событий аутентификации, называющийся auth-events-collector, который должен:
- слушать топик sso.auth.events
- передавать появившееся новое сообщение в бд ervu-journal в таблицу auth_journal, с полями, указанными ниже.
Название | Формат данных |
|---|---|
Название | Формат данных |
| id | guid |
| user_id | guid |
| vk_id | guid |
| description | text |
| time_created | datetime |
| extra_info | jsonb |
| result | varchar |
| main_vk_id | guid |
Добавить комментарий